//
// Created by WYLH2 on 2024/8/20.
//

#ifndef POCKETCUBECORNER_H
#define POCKETCUBECORNER_H

#include <vector>
#include <string>

class PocketCubeCorner {
public:
    explicit PocketCubeCorner(std::vector<int> coord, std::vector<std::string> color = {"", "", ""});

    void rotate(int axis, bool clockwise);
    [[nodiscard]] std::vector<int> getCoord() const;
    [[nodiscard]] std::vector<std::string> getColor() const;
    void setColor(std::vector<std::string> newColor);

    std::vector<std::string> color;

private:
    std::vector<int> coord;


    std::vector<int> rotate_vector_around_axis_optimized(std::vector<int> v, int axis, bool clockwise);

};

#endif // POCKETCUBECORNER_H